friction_core Module


Uses


Interfaces

interface

  • public function friction_evaluation(this, t, x, dxdt, nrm, svars) result(rst)

    Arguments

    Type IntentOptional Attributes Name
    class(friction_model), intent(inout) :: this

    The friction_model object.

    real(kind=real64), intent(in) :: t

    The current simulation time value.

    real(kind=real64), intent(in) :: x

    The current value of the relative position between the contacting bodies.

    real(kind=real64), intent(in) :: dxdt

    The current value of the relative velocity between the contacting bodies.

    real(kind=real64), intent(in) :: nrm

    The current normal force between the contacting bodies.

    real(kind=real64), intent(in), optional, dimension(:) :: svars

    An optional array containing any internal state variables the model may rely upon.

    Return Value real(kind=real64)

    The friction force.

interface

  • public pure function friction_integer_query(this) result(rst)

    Gets an integer-valued parameter from the model

    Arguments

    Type IntentOptional Attributes Name
    class(friction_model), intent(in) :: this

    The friction_model object.

    Return Value integer(kind=int32)

    The model parameter.

interface

  • public pure function friction_logical_query(this) result(rst)

    Returns a value stating if the model relies upon internal state variables.

    Arguments

    Type IntentOptional Attributes Name
    class(friction_model), intent(in) :: this

    The friction_model object.

    Return Value logical

    Returns true if the model utilizes internal state variables; else, returns false.

interface

  • public subroutine friction_model_from_array(this, x, err)

    Converts an array into the parameters for the friction model.

    Arguments

    Type IntentOptional Attributes Name
    class(friction_model), intent(inout) :: this

    The friction_model object.

    real(kind=real64), intent(in), dimension(:) :: x

    The array of parameters. See parameter_count to determine the size of this array.

    class(errors), intent(inout), optional, target :: err

    An optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling.

interface

  • public subroutine friction_model_to_array(this, x, err)

    Converts the parameters of the friction model into an array.

    Arguments

    Type IntentOptional Attributes Name
    class(friction_model), intent(in) :: this

    The friction_model object.

    real(kind=real64), intent(out), dimension(:) :: x

    The array used to store the parameters. See @ref parameter_count to determine the size of this array.

    class(errors), intent(inout), optional, target :: err

    An optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling.

interface

  • public subroutine friction_state_model(this, t, x, dxdt, nrm, svars, dsdt)

    Evaluates the time derivatives of the internal friction state model.

    Arguments

    Type IntentOptional Attributes Name
    class(friction_model), intent(inout) :: this

    The friction_model object.

    real(kind=real64), intent(in) :: t

    The current simulation time value.

    real(kind=real64), intent(in) :: x

    The current value of the relative position between the contacting bodies.

    real(kind=real64), intent(in) :: dxdt

    The current value of the relative velocity between the contacting bodies.

    real(kind=real64), intent(in) :: nrm

    The current normal force between the contacting bodies.

    real(kind=real64), intent(in), dimension(:) :: svars

    An N-element array containing any internal state variables the model may rely upon.

    real(kind=real64), intent(out), dimension(:) :: dsdt

    An N-element array where the state variable derivatives are to be written.


Derived Types

type, public ::  friction_model

Defines a generic friction model.

Type-Bound Procedures

procedure, public :: constraint_equations => fmdl_constraints
procedure(friction_evaluation), public, deferred :: evaluate
procedure, public :: fit => fmdl_fit
procedure(friction_model_from_array), public, deferred :: from_array
procedure, public :: get_constraint_equation_count => fmdl_get_constraint_count
procedure(friction_integer_query), public, deferred :: get_state_variable_count
procedure(friction_logical_query), public, deferred :: has_internal_state
procedure(friction_integer_query), public, deferred :: parameter_count
procedure, public :: reset => fmdl_reset
procedure(friction_state_model), public, deferred :: state
procedure(friction_model_to_array), public, deferred :: to_array